﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using ERP.ERPSystem.WarehouseManagement.Dto;

namespace ERP.ERPSystem.WarehouseManagement
{
    /// <summary>
    /// 仓储管理-赋码管理接口
    /// </summary>
    public interface ICodingManagementService : IApplicationService
    {
        /// <summary>
        /// 获取分页列表
        /// </summary>
        Task<(List<CodingManagementDTO> Items, int TotalCount)> GetPagedListAsync(string codeType, string businessCode, string businessName, int skipCount, int maxResultCount);

        /// <summary>
        /// 新增编码
        /// </summary>
        Task<CodingManagementDTO> CreateAsync(CodingManagementDTO input);

        /// <summary>
        /// 生成条码
        /// </summary>
        Task<string> GenerateBarcodeAsync(string barFormat);

        /// <summary>
        /// 获取物料产品分页列表
        /// </summary>
        Task<(List<CodingMaterialProductDTO> Items, int TotalCount)> GetMaterialProductPagedListAsync(
            string materialCode,
            string materialName,
            int skipCount,
            int maxResultCount);

        /// <summary>
        /// 删除编码
        /// </summary>
        Task DeleteAsync(int id);
    }
}
